const {
	log
} = require("console");

const db = uniCloud.database();
exports.main = async (event, context) => {
	console.log(event)
	let userList = []; // 所有用户列表
	// let {phone} = event]
	// let phone = event.phone
	let limit = 100; // 每次查询的数量
	let offset = 0; // 偏移量	
	let number = event.number || 2
	let {
		total
	} = await db.collection('painai').where({
		userId: event.userId || ""
	}).count(); // 总数量		

	do {
		let {
			data
		} = await db.collection('painai').where({
			userId: event.userId || ""
		}).skip(offset).limit(limit).get();
		userList = userList.concat(data); // 将查询到的数据添加到列表中	 
		offset += limit; // 更新偏移量
	} while (offset < total);
	// let res = await db.collection('painai').where(event).all()
	//访问微信云数据库
	//1.调用获取默认环境的数据库的引用：
	// this.title = number == 2 ? "当前列表数据为【后天】报数数据" : "当前列表数据为【明天】排序数据"
	let ing = new Date(event.dateTime) //当前时间
	let ingYears = ing.getFullYear()
	let ingMonth = ing.getMonth() + 1 //当前月
	let ingGetDate = ing.getDate() + number * 1 //后天
	// let ingGetDay = ing.getDay() + 2 //后天星期
	// if(ingGetDate = )
	let ingTime =
		`${ingYears}-${ingMonth < 10 ? "0" + ingMonth : ingMonth}-${ingGetDate < 10 ? "0" + ingGetDate : ingGetDate}`
	let timestamp = new Date(ingTime).getTime() //当前时间戳
	let ingGetDay = new Date(ingTime).getDay() //后天星期
	userList.forEach(item => {
		item.ingTime = ingTime
		// console.log(timestamp >= startTimestamp && timestamp <= endTimestamp  ); //大于等于开始时间   小于等于结束时间
		if (item.beforehandArray.length != 0 ) {
			// 判断预处理状态
			item.beforehandArray.forEach(items => {
				// 为停止区间
				if (items.incident == 0 && timestamp >= new Date(items.executeTime).getTime()) {
					if(timestamp <= new Date(items.endStop).getTime()){
						item.endTime = items.executeTime //结束时间等于开始时间
						item.pretreatment = true
					}
				}else if(items.incident == 1 && timestamp >= new Date(items.executeTime).getTime()){ //为修改区间并且再预处理启动范围内
					item.kindArray = items.kindArray
					item.selected = items.selected
					item.pretreatment = true //表示正在执行
					
				}
			})
		}
		// 将时间转换为时间戳
		let startTimestamp = new Date(item.startTime).getTime() // 开始时间时间戳
		let endTimestamp = new Date(item.endTime).getTime() // 结束时间时间戳
		if (timestamp >= startTimestamp && timestamp < endTimestamp) { //判断区间
			if (item.selected == 0) {
				// item.userSite = endTimestamp +"="+timestamp
				item.flag = true
				// console.log("全部" , ing.getDay());
			} else if (item.selected == 1) {
				// console.log("工作日");
				if (ingGetDay != "0" || ingGetDay != 6) {
					item.flag = true
				} else {
					item.flag = false
				}
			} else if (item.selected == 2) {
				// 休息日
				if (ingGetDay == 0 || ingGetDay == 6) {
					item.flag = true
				} else {
					item.flag = false
				}
			} else if (item.selected == 3) {
				// console.log("单日");
				if (ingGetDate % 2 != 0) {
					item.flag = true
				} else {
					item.flag = false
				}
			} else if (item.selected == 4) {
				// console.log("双日");
				if (ingGetDate % 2 == 0) {
					item.flag = true
				} else {
					item.flag = false
				}
			}


			// 如果number是2 z证明当前是报数状态 不显示app下面的数据
			if (number == 2) {
				if (item.isAPP == 1) {
					item.flag = false
				}
			}
		} else {
			item.flag = false
			// item.userSite =  event.dateTime
			console.log("不符合条件");
		}
	})
	return {
		data: userList,
		code: 200,
		message: "成功"
	}
};